<?php
require 'BaseController.php';
class Admin_UserController extends Admin_BaseController{
	
	private $_userModel;
	
	public function init()
    {
    	parent::init();
		$this->_userModel = new Model_User();  
    }
    /**
     * Login action using Auth_Adapter_DbTable
     */
	public function loginAction(){
		
		$this->view->layout()->disableLayout();
		$loginForm = new Form_AdminLogon();
		if($this->_request->isPost() && $loginForm->isValid($_POST)){
			$data = $loginForm->getValues();
			$adapter = new Auth_Adapter_DbTable($data['username'], $data['password']);
			$auth = Zend_Auth::getInstance();
			$result = $auth->authenticate($adapter);
			if($result->isValid()){
				$storage = $auth->getStorage();
				$storage->write($adapter->getResultObject(
					array("id","username","role")
				));
				if($auth->getIdentity()->role != 1){
					$this->_redirector->gotoRoute(array(),'admin_dashboard');
				}else{
					$this->_redirector->gotoRoute(array(),'admin_bill_list');
				}
			}else{
				$this->view->logonMessage = "Tên đăng nhập hoặc mật khẩu không chính xác!<br/>Nếu bạn quên xin liên hệ tại <a href='http://idgit.com.vn'>đây</a>";
			}
		}
		$this->view->form = new Form_AdminLogon();	
		
	}
	
	public function logoutAction(){
		$auth = Zend_Auth::getInstance();
		$auth->clearIdentity();
		$this->_redirect("/admin/login");
		
	}
	public function listAction(){
		$session = new Zend_Session_Namespace();
		$this->view->message = $session->message;
		$session->__unset('message');
		$auth = Zend_Auth::getInstance();
		$this->view->arrUsers = $this->_userModel->getAllUser();
		$this->view->identity= $auth->getIdentity();
	}
	
	public function createAction(){
		$this->view->headScript()->appendFile($this->view->baseUrl().'/public/plugins/ckfinder/ckfinder.js');
		$session = new Zend_Session_Namespace();
		$auth = Zend_Auth::getInstance();
		$this->view->identity = $auth->getIdentity();
		if($this->_request->isPost()){
			//lấy dữ liệu
			$request =$this->getRequest();
			$username = $request->getParam("username");
			$password = $request->getParam("password");
			$fullname = $request->getParam("fullname");
			$email = $request->getParam("email");
			$phone = $request->getParam("phone");
			$image = $request->getParam("image");
			$fax = $request->getParam("fax");
			$role = $request->getParam("role");
			if($this->_userModel->createUser($username, $password, $fullname, $email, $phone, $fax, $image, $role)){
				$session->message = "<span class='success'>Thêm người dùng thành công</span>";
				$this->_redirector->gotoRoute(array(),'admin_user_list');
			}else{
				$session->message = "<span class='error'>Thêm người dùng không thành công</span>";
			}
			
		}
		
		
	}
	public function editAction(){
		$this->view->headScript()->appendFile($this->view->baseUrl().'/public/plugins/ckfinder/ckfinder.js');
		//khởi tạo session
		$session = new Zend_Session_Namespace();
		//truyền identity cho view
		$auth = Zend_Auth::getInstance();
		$this->view->identity = $auth->getIdentity();
		//lấy user theo id
		$id = $this->getRequest()->getParam('id');
		if(isset($id)){
			$user = $this->_userModel->getUserByID($id);
			if($user == null){
				$this->view->message = "<span class='error'>Không tồn tại người dùng này.</span>"; 
			}else{
				$this->view->user = $user;;
			}
			//kiểm tra post
			$request = $this->getRequest();
			if($request->isPost()){
				
				//lấy dữ liệu
				$username = $request->getParam("username");
				$password = $request->getParam("password");
				$fullname = $request->getParam("fullname");
				$email = $request->getParam("email");
				$phone = $request->getParam("phone");
				$fax = $request ->getParam("fax");
				$image = $request ->getParam("image");
				$role = $request->getParam("role");
				$result = $this->_userModel->updateUser($id, $username, $password, $fullname, $email, $phone, $fax, $image, $role);
				if($result){
					$session->message = "<span class='success'>Sửa thông người dùng thành công</span>";
				}else{
					$session->message = "<span class='error'>Sửa thông tin người dùng không thành công</span>";
				}
				$this->_redirector->gotoRoute(array(),'admin_user_list');
			}
		}else{
			$this->view->message = "<span class='error'>Có lỗi xảy ra.</span>"; 
		}
	}
	
	public function deleteAction(){
		$session = new Zend_Session_Namespace();
		//truyền identity cho view
		$auth = Zend_Auth::getInstance();
		$this->view->identity = $auth->getIdentity();
		//lấy id cần xóa
		if($this->getRequest()->isPost()){
			$id = $this->getRequest()->getParam('ids');
		}else{
			$id = $this->getRequest()->getParam('id');
		}
		if($id){
			if($this->_userModel->deleteUser($id) > 0){
				$session->message = "<span class='success'>Xóa người dùng thành công</span>";
				
			}else{
				$session->message = "<span class='error'>Xóa người dùng không thành công</span>";
				
			}
		}else{
			$session->message = "<span class='error'>Có lỗi xảy ra</span>";
		}
		$this->_redirector->gotoRoute(array(),'admin_user_list');
	}
	public function changepassAction(){
		$session = new Zend_Session_Namespace();
		//truyền identity cho view
		$auth = Zend_Auth::getInstance();
		$this->view->identity = $auth->getIdentity();
		//tạo form
		$createForm = new Form_CreateUser();
		$createForm->removeElement('username');
		$createForm->removeElement('fullname');
		$createForm->removeElement('email');
		$createForm->removeElement('phone');
		$createForm->removeElement('role');
		$this->view->form =  $createForm;
		if($this->getRequest()->isPost() && $createForm->isValid($_POST)){
			//lấy dữ liệu
			$password = $createForm->getValue('password');
			if($this->_userModel->changePass($this->view->identity->id, $password) == 1){
				$this->view->message = "<span class='success'>Thay đổi mật khẩu thành công</span>";
			}else{
				$this->view->message = "<span class='error'>Thay đổi mật khẩu không thành công</span>";
			}
		}
	}
	
}
?>